home *** CD-ROM | disk | FTP | other *** search
/ The Fatted Calf / The Fatted Calf.iso / Applications / GraphicViewers / Viewer_Yacktman / Source / Controller.m < prev    next >
Text File  |  1991-10-07  |  2KB  |  96 lines

  1.  
  2. /* Generated by Interface Builder */
  3.  
  4. #import "Controller.h"
  5.  
  6. @implementation Controller
  7.  
  8. - init
  9. {
  10.     pics = 0;
  11.     first = YES;
  12.     nextX = 200;
  13.     nextY = 600;
  14.     return self;
  15. }
  16.  
  17. - openImage:sender
  18. {
  19.     const char *const *files;
  20.     char *file;
  21.     const char *dir;
  22.     static const char *const ft[2] = {"pic", NULL};
  23.     
  24.     id openPanel = [OpenPanel new];
  25.     [openPanel allowMultipleFiles:NO];
  26.     if (first) {
  27.         [openPanel runModalForDirectory:"/Users/don/raytrace/ohta-tracer"
  28.             file:NULL types:ft];
  29.     first = NO;
  30.     }
  31.     else  [openPanel runModalForTypes:ft];
  32.     files = [openPanel filenames];
  33.     dir = [openPanel directory];
  34.     file = malloc(strlen(files[0]) + strlen(dir) + 8);
  35.     strcpy(file, dir);
  36.     strcat(file,"/");
  37.     strcat(file, files[0]);
  38.     strcat(file, "\0");
  39.     [self openFile:file];
  40.     return self;
  41. }
  42.  
  43. - saveImage:sender
  44. {
  45.     if ([[SavePanel new] runModalForDirectory:[[OpenPanel new] directory]
  46.             file:"UNTITLED.tiff"]) {
  47.         [[[[NXApp keyWindow] contentView] findViewWithTag:69]
  48.         saveFile:[[SavePanel new] filename]];
  49.     }
  50.     return self;
  51. }
  52.  
  53. - (BOOL)openFile:(const char *)name
  54. {
  55.     id alert;
  56.     BOOL rStat;
  57.     
  58.     [NXApp loadNibSection:"Window.nib" owner:self withNames:NO];
  59.     [newWindow setTitleAsFilename:name];
  60.     alert = NXGetAlertPanel(NULL, "Filling buffer and creating image.",
  61.         NULL, NULL, NULL);
  62.     [alert makeKeyAndOrderFront:self];
  63.     rStat = [newImage loadFile:name x:nextX y:nextY];
  64.     [alert orderOut:self];
  65.     [alert free];
  66.     nextX += 22; nextY -= 25;
  67.     if (nextX > 370) {
  68.         nextX = 200; nextY = 600;
  69.     }
  70.     if (rStat == YES) {
  71.         [saveBut setEnabled:YES];
  72.     }
  73.     return rStat;
  74. }
  75.  
  76. - info:sender
  77. {
  78.     if (!infoPanel)
  79.         [NXApp loadNibSection:"Info.nib" owner:self withNames:NO];
  80.     [infoPanel makeKeyAndOrderFront:self];
  81.     return self;
  82. }
  83.  
  84. - (int)app:sender openFile:(const char *)file type:(const char *)type
  85. {
  86.     return [self openFile:file];
  87. }
  88.  
  89. - (BOOL)appAcceptsAnotherFile:sender
  90. {
  91.     //if (pics < 16) { pics++; return YES; }
  92.     return YES;
  93. }
  94.  
  95. @end
  96.